package io.github.hadyang.leetcode.bytedance;

/**
 * x 的平方根 实现 int sqrt(int x) 函数。
 *
 * <p>计算并返回 x 的平方根，其中 x 是非负整数。
 *
 * <p>由于返回类型是整数，结果只保留整数的部分，小数部分将被舍去。
 *
 * <p>示例 1:
 *
 * <p>输入: 4 输出: 2 示例 2:
 *
 * <p>输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数，小数部分将被舍去。
 *
 * @author haoyang.shi
 */
public class Sqrt1045 {

  public int mySqrt(int x) {

    double a = 1, diff = 0;

    do {
      a = (x / a + a) / 2.0;
      diff = Math.abs(a * a - x);
    } while (diff > 0.1);

    return (int) a;
  }

  public static void main(String[] args) {
    Sqrt1045 main = new Sqrt1045();
    System.out.println(main.mySqrt(4));
    System.out.println(main.mySqrt(8));
  }
}
